package org.example.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@TableName("user")
public class StUser {
    /**
     * CREATE TABLE `user` (
     *     `id` BIGINT NOT NULL AUTO_INCREMENT,    -- 主键，自动递增
     *     `email` VARCHAR(255) NOT NULL,          -- 邮箱字段，假设最大长度为 255
     *     `isValid` TINYINT(1) DEFAULT 1,         -- 是否有效，1 表示有效，0 表示无效
     *     `ctime` DATETIME DEFAULT CURRENT_TIMESTAMP,  -- 创建时间，默认当前时间
     *     `mtime` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,  -- 最后修改时间，更新时自动更新时间
     *     PRIMARY KEY (`id`),                     -- 设置 id 为主键
     *     UNIQUE KEY `email` (`email`)            -- 确保 email 唯一
     * ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
     */

    /**
     * 用户ID，主键，自动递增
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 登录名
     */
    @TableField("login_name")
    private String loginName;

    /**
     * 用户邮箱，唯一
     */
    @TableField
    private String email;

    /**
     * 密码
     */
    @TableField
    private String password;

    /**
     * 是否有效，1 表示有效，0 表示无效
     */
    @TableField("is_valid")
    private Boolean isValid;

    /**
     * 创建时间
     */
    @TableField(value = "ctime")
    private LocalDateTime ctime;

    /**
     * 最后修改时间
     */
    @TableField(value = "mtime")
    private LocalDateTime mtime;

}
